﻿'********************************************************************************
'*
'*      テープ貼り付け　フォーム
'*
'*      File Name : frmStartCompleteTape.vb
'*      Title     : テープ貼付着工/完了画面
'*      機能    　：テープ貼付工程
'*
'********************************************************************************
'----------------------------------<<修正履歴>>----------------------------------
'ﾊﾞｰｼﾞｮﾝ   日付       作業者        ｺﾒﾝﾄ
'--------- ---------- ------------ -----------------------------------------------
' V1.0.0   2016/09/14 S.Yu         新規作成
' V2.0.0   2017/06/08 M.Maho       蘇州対応
' V3.0.0   2017/12/11 M.Ohga       北京対応
'********************************************************************************

Imports System.Text

Public Class frmStartCompleteTape

    ' b-Site取得カテゴリーとの比較文字列
    Private Const BSITE_CATEGORY_TAPE As String = "DCTP"

    ' 外部画面呼び出しTAG
    Private Const EXEC_PG_TAG_TAPE As String = "DB_TAPE"

    '>>2018/1/31 佐川 キャリア交換対応
    '実行モード
    '0:表示 1:着工 2:製造完成 3:計上完成
    Private execMode As String = VIEW
    '<<2018/1/31 佐川 キャリア交換対応

    '照合結果設定
    Public Overrides Sub SetPassScore()
        ' 入力内容は2つ。設備タブ「テープ」、情報タブ「ウェハケースNo」
        PASS_SCORE = 2
        ReDim m_iScore(PASS_SCORE - 1)
        ' 設備タブ「テープ」は着工チェックあり、情報タブ「ウェハケースNo」はチェックなし
        m_iScore = {PASS_SCORE_WAIT_CHECK, PASS_SCORE_CHECKED}
        m_fColl = False
    End Sub

    '照合結果クリア
    Public Overrides Sub InitualizeCollData()
        m_iScore = {PASS_SCORE_WAIT_CHECK, PASS_SCORE_CHECKED}
        m_fColl = False
    End Sub

    'イベント設定
    Public Overrides Sub SetHandler()
        'テープ_読取ボタン
        AddHandler btnTape.Click, AddressOf btnRefresh_Click

        'フレーム補充ボタン
        AddHandler btnTapeAdd.Click, AddressOf btnTapeAdd_Click

        'ウェハケースNo バーコードボタン
        AddHandler btnWafer.Click, AddressOf WaferCaseNo_Click
        AddHandler txt0203.KeyPress, AddressOf txtData_KeyPress
        AddHandler txt0203.LostFocus, AddressOf WaferTxtData_LostFocus
    End Sub

    'Lot Noでデータベースからデータを取得する
    Public Overrides Sub GetDataByIcTag()
        Debug.WriteLine(System.Reflection.MethodBase.GetCurrentMethod.Name + " in")

        '初期化
        InputDataClear()

        'ICタグのデータで画面を設定する
        SetFromTag()

        'ロット部のセット
        setGridViewLot()

        If String.IsNullOrEmpty(IcTag.szUID) Then
            IcTag = LastTag
        End If

        'jyokendataから値を取得し、ロット部の製造条件にセットする
        setJyokenData()

        'jyokendataから値を取得し、テープの製造条件にセットする
        Dim getData = dtJyokenData.AsEnumerable().FirstOrDefault(Function(x) lbl0100.Tag.Equals(x("KOMOKUNAME")))
        If getData IsNot Nothing Then
            lbl0102.Text = getData("KOMOKUDATA")
        End If

        '現物型式
        setDetailData()

        If IcTag.Status = TagProcessStatus.Ready Then
            ' 着工前の場合はbSiteからデータを取得する
            bSiteCheckTape()
        ElseIf IcTag.Status = TagProcessStatus.Processing Or IcTag.Status = TagProcessStatus.ManufComplete Then
            '設備・特殊部に現物型式をセット
            For Each dr In dtDetailData.Rows
                If dr("MNF_CND_TAG").Equals(lbl0100.Tag) Then
                    'テープの現物型式、材料ロット、使用期限
                    txt0103.Text = DBNullTOblank(dr("ACTUAL_MODEL")) 'UPD MIAO 2018/11/1
                    txt0104.Text = DBNullTOblank(dr("MATERIAL_LOT")) 'UPD MIAO 2018/11/1
                    lbl0105.Text = DBNullTOblank(dr("LIMIT_TIME")) 'UPD MIAO 2018/11/1
                End If
                '苗 GROUP ID 修正 2018/1/12 BEGIN
                If DBNullTOblank(dr("MNF_CND_TAG")).Equals(lbl0200.Tag) Then 'UPD MIAO 2018/11/1
                    'WAFER CASE NOの設定
                    txt0203.Text = DBNullTOblank(dr("ACTUAL_MODEL")) 'UPD MIAO 2018/10/18
                End If
                '苗 GROUP ID 修正 2018/1/12　END
            Next
        Else
            ' 画面の初期設定側でエラー処理をするのでここでは無処理
        End If

        getHeadData()

        With m_dtMat
            If .Rows.Count > 0 Then
                '着完日時
                DisplayDate()
            Else
                If m_dtMat.Columns.Count > 0 Then
                    .Rows.Add()
                Else
                    .Columns.Add("BEGIN_TIME")
                    .Rows.Add()
                End If
            End If
        End With

    End Sub

    '画面データ保存（着工時）
    Public Overrides Function SaveEquipMat(ByRef szBeginTime As DateTime) As Boolean

        '>>2018/1/31 佐川 キャリア交換対応
        execMode = BEGIN
        '<<2018/1/31 佐川 キャリア交換対応

        If saveDetail(BEGIN) < 0 Then
            Return False
        Else
            Return True
        End If
    End Function

    '画面データ保存（製造完成）
    Public Overrides Function SaveCompleteInfo(Optional ByVal status As ProcessStatus = ProcessStatus.ManufComplete) As Integer

        '>>2018/1/31 佐川 キャリア交換対応
        execMode = COMPLETE
        '<<2018/1/31 佐川 キャリア交換対応

        dtDBUpd.Clear()
        Return saveDetail(COMPLETE)
    End Function

    '画面データ保存（計上完成）
    Public Overrides Function SaveTotalInfo() As Integer

        '>>2018/1/31 佐川 キャリア交換対応
        execMode = TOTAL
        '<<2018/1/31 佐川 キャリア交換対応

        dtDBUpd.Clear()
        Return saveDetail(TOTAL)
    End Function

    'ウェハケースNo バーコード入力LostFocus時の照合チェック
    Private Sub WaferTxtData_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs)
        Debug.WriteLine(System.Reflection.MethodBase.GetCurrentMethod.Name + " in")

        'ウェハケースNoの空白チェック
        Dim title As String = lbl0200.Text.Replace(Environment.NewLine, "")
        If Not checkBlank(txt0203.Text, title) Then
            txt0203.BackColor = ERROR_INIT_COLOR
            lbl0203.BackColor = ERROR_INIT_COLOR
        Else
            txt0203.BackColor = ENTERED_INIT_COLOR
            lbl0203.BackColor = ENTERED_INIT_COLOR
        End If

        If txt0203.Enabled Then
            txt0203.Enabled = False
        End If

        '>>20180313 大賀 搬送容器桁数チェックを共通化
        ' ウェハケースNoの桁数チェック
        If Not isCheckCaseLength(txt0203, WAFER_CASE_NO_LENGTH, lbl0203) Then
            Exit Sub
        End If
        '<<20180313 大賀 搬送容器桁数チェックを共通化
    End Sub

    '履歴明細テーブル更新処理
    Private Function saveDetail(ByVal type As String) As Integer
        Debug.WriteLine(System.Reflection.MethodBase.GetCurrentMethod.Name + " in")
        setLotData()
        Dim rowsCnt As Integer = dtDBUpd.Rows.Count
        Dim addIndex As Integer = 0

        'テープ
        dtDBUpd.Rows.Add()
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG) = lbl0100.Tag
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG_FLG) = MNF_CND_TAG_FLG_REGIST_DB
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_SEQ) = 1
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CONDITION) = lbl0102.Text
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL) = txt0103.Text
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MATERIAL_LOT) = txt0104.Text
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_LIMIT_TIME) = lbl0105.Text
        addIndex += 1

        If type <> BEGIN Then
            'ウェハケースNo
            dtDBUpd.Rows.Add()
            dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG) = lbl0200.Tag
            dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG_FLG) = MNF_CND_TAG_FLG_OTHER
            dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_SEQ) = 1
            dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL) = txt0203.Text
            addIndex += 1
        End If

        Return m_cEquipMat.SaveDetail(lotNo, IcTag.szProcsCD, type,
                                      m_szTable, dtDBUpd, m_dtHeader,
                                      m_cIdohyo.EquipInfo.szEquipNo, serverTime)
    End Function

    '計上完成時チェック処理
    Public Overrides Function EndCheck() As Boolean
        Debug.WriteLine(System.Reflection.MethodBase.GetCurrentMethod.Name + " in")
        Dim title As String = lbl0200.Text.Replace(Environment.NewLine, "")

        ' 設備タブのチェック
        '>>2018/2/20 大賀 No79 計上完成時にBSiteチェック実施
        '' テープ製造条件
        'If String.IsNullOrEmpty(txt0103.Text) Then
        '    MsgBox(getMsgStr("MSG00101", lbl0100.Text))
        '    Return False
        'ElseIf txt0103.Text <> lbl0102.Text Then
        '    MsgBox(getMsgStr("MSG00021", lbl0100.Text))
        '    txt0103.BackColor = ERROR_INIT_COLOR
        '    lbl0103.BackColor = ERROR_INIT_COLOR
        '    Return False
        'End If
        '' テープ使用期限
        ''現在の日付を取得する
        'Dim dtNow As DateTime = m_cData.GetServerTime()
        'Dim dt As DateTime

        ''日付に変換できるかどうか
        'If DateTime.TryParse(txt0105.Text, dt) Then
        '    '変換出る場合、現在の日付と比較する
        '    If dt.Date < dtNow.Date Then
        '        txt0105.BackColor = ERROR_INIT_COLOR
        '        lbl0105.BackColor = ERROR_INIT_COLOR
        '        MsgBox(getMsgStr("MSG00049", lbl0100.Text))
        '        Return False
        '    End If
        'Else
        '    txt0105.BackColor = ERROR_INIT_COLOR
        '    lbl0105.BackColor = ERROR_INIT_COLOR
        '    MsgBox(getMsgStr("MSG00048", lbl0100.Text))
        '    Return False
        'End If
        If Not bSiteCheckTape() Then
            Return False
        End If
        '<<2018/2/20 大賀 No79 計上完成時にBSiteチェック実施

        'ウェハケースNoの空白チェック
        If Not checkBlank(txt0203.Text, title) Then
            txt0203.BackColor = ERROR_INIT_COLOR
            lbl0203.BackColor = ERROR_INIT_COLOR
            Return False
        End If

        txt0203.BackColor = ENTERED_INIT_COLOR
        lbl0203.BackColor = ENTERED_INIT_COLOR

        '>>20180302 大賀 GroupKey入力時ウェハ枚数入力
        If Not CheckInputWaferNum() Then
            Return False
        End If
        '<<20180302 大賀 GroupKey入力時ウェハ枚数入力

        Return True
    End Function

    '初期化、背景色の設定
    Public Sub InputDataClear()
        Debug.WriteLine(System.Reflection.MethodBase.GetCurrentMethod.Name + " in")
        '>>2018/1/31 佐川 キャリア交換対応
        execMode = VIEW
        '<<2018/1/31 佐川 キャリア交換対応

        'ロットタブの初期化
        clearActualModel()

        'テープ
        lbl0102.Text = String.Empty
        lbl0103.Text = String.Empty
        lbl0104.Text = String.Empty
        lbl0105.Text = String.Empty
        txt0103.Text = String.Empty
        txt0104.Text = String.Empty
        lbl0105.Text = String.Empty
        lbl0103.BackColor = NORMAL_INIT_COLOR
        lbl0104.BackColor = NORMAL_INIT_COLOR
        lbl0105.BackColor = NORMAL_INIT_COLOR
        txt0103.BackColor = NORMAL_INIT_COLOR
        txt0104.BackColor = NORMAL_INIT_COLOR

        'ウェハケースNo(着工前)
        txt0203.Text = String.Empty
        txt0203.BackColor = NORMAL_INIT_COLOR
        lbl0203.BackColor = NORMAL_INIT_COLOR

        '開始作業者No
        txtOptNoStt.Text = String.Empty
        '終了作業者No
        txtOptNoEnd.Text = String.Empty


    End Sub

    Public Overrides Sub ConfScreenItem()
        Debug.WriteLine(System.Reflection.MethodBase.GetCurrentMethod.Name + " in")
        If txtLotNo.TextLength > 0 Then
            If IcTag.Status = TagProcessStatus.Ready Then
                '着工待ち
                btnTape.Enabled = True
                btnTapeAdd.Enabled = True
                lbl0103.BackColor = NORMAL_INIT_COLOR
                lbl0104.BackColor = NORMAL_INIT_COLOR
                lbl0105.BackColor = NORMAL_INIT_COLOR
                txt0103.BackColor = NORMAL_INIT_COLOR
                txt0104.BackColor = NORMAL_INIT_COLOR
                btnWafer.Enabled = False
                txt0203.BackColor = NORMAL_INIT_COLOR
                lbl0203.BackColor = NORMAL_INIT_COLOR
            ElseIf IcTag.Status = TagProcessStatus.Processing Then
                '着工中
                btnTape.Enabled = True
                btnTapeAdd.Enabled = True
                lbl0103.BackColor = NORMAL_INIT_COLOR
                lbl0104.BackColor = NORMAL_INIT_COLOR
                lbl0105.BackColor = NORMAL_INIT_COLOR
                txt0103.BackColor = NORMAL_INIT_COLOR
                txt0104.BackColor = NORMAL_INIT_COLOR
                btnWafer.Enabled = True
                txt0203.BackColor = TENKEY_INIT_COLOR
                lbl0203.BackColor = TENKEY_INIT_COLOR
            ElseIf IcTag.Status = TagProcessStatus.ManufComplete Then
                '着工中
                btnTape.Enabled = True
                btnTapeAdd.Enabled = True
                lbl0103.BackColor = NORMAL_INIT_COLOR
                lbl0104.BackColor = NORMAL_INIT_COLOR
                lbl0105.BackColor = NORMAL_INIT_COLOR
                txt0103.BackColor = NORMAL_INIT_COLOR
                txt0104.BackColor = NORMAL_INIT_COLOR
                btnWafer.Enabled = True
                txt0203.BackColor = TENKEY_INIT_COLOR
                lbl0203.BackColor = TENKEY_INIT_COLOR
            Else
                btnTape.Enabled = False
                btnTapeAdd.Enabled = False
                lbl0103.BackColor = NORMAL_INIT_COLOR
                lbl0104.BackColor = NORMAL_INIT_COLOR
                lbl0105.BackColor = NORMAL_INIT_COLOR
                txt0103.BackColor = NORMAL_INIT_COLOR
                txt0104.BackColor = NORMAL_INIT_COLOR
                txt0203.BackColor = NORMAL_INIT_COLOR
                lbl0203.BackColor = NORMAL_INIT_COLOR
            End If
        End If
    End Sub

    ' 設備タブ再読込ボタン押下
    Protected Sub btnRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Debug.WriteLine(System.Reflection.MethodBase.GetCurrentMethod.Name + " in")
        bSiteCheckTape()
    End Sub

    ' B-Siteチェック
    Private Function bSiteCheckTape() As Boolean
        Debug.WriteLine(System.Reflection.MethodBase.GetCurrentMethod.Name + " in")

        '値初期化
        txt0103.Text = String.Empty
        txt0103.BackColor = NORMAL_INIT_COLOR
        lbl0103.BackColor = NORMAL_INIT_COLOR
        txt0104.Text = String.Empty
        txt0104.BackColor = NORMAL_INIT_COLOR
        lbl0104.BackColor = NORMAL_INIT_COLOR
        lbl0105.Text = String.Empty
        lbl0105.BackColor = NORMAL_INIT_COLOR

        If String.IsNullOrEmpty(lbl0102.Text) Then
            ' 製造条件が空の場合はチェックを行わないで、着工チェックフラグを立てる
            m_iScore(0) = PASS_SCORE_CHECKED
            CheckCollScore()
            Return True
        End If

        'B-Site ViewMachineService
        Dim clientProcCd = GetBsiteClientString()
        Dim outMachine = getViewLotService(clientProcCd)
        Dim MaterialList = getMachineMaterialListByCategory(outMachine, BSITE_CATEGORY_TAPE)
        Dim getDataList = MaterialList.Where(Function(x) x.Type IsNot Nothing And x.OriginalLot IsNot Nothing And x.DueDateW IsNot Nothing).ToList
        If getDataList.Count = 0 Then
            ' B-Siteから取得できない
            MsgBox(getMsgStr("MSG00101", lbl0100.Text))
            txt0103.BackColor = ERROR_INIT_COLOR
            lbl0103.BackColor = ERROR_INIT_COLOR
            txt0103.Text = String.Empty
            m_iScore(0) = PASS_SCORE_WAIT_CHECK
            Return False
        End If

        'リストを検索
        Dim getData = getDataList.FirstOrDefault(Function(x) x.Type = lbl0102.Text.Split(DEF_SLASH)(0).Trim)
        If getData Is Nothing Then
            ' 製造条件と一致しない
            MsgBox(getMsgStr("MSG10030", lbl0100.Text, makeViewMachineTypeString(getDataList)))
            txt0103.BackColor = ERROR_INIT_COLOR
            lbl0103.BackColor = ERROR_INIT_COLOR
            txt0103.Text = String.Empty
            m_iScore(0) = PASS_SCORE_WAIT_CHECK
            Return False
        Else
            txt0103.Text = getData.Type.Trim
            txt0104.Text = getData.OriginalLot.Trim
            lbl0105.Text = getData.DueDateW.Trim

            '現在の日付を取得する
            Dim dtNow As DateTime = m_cData.GetServerTime()
            Dim dt As DateTime

            '日付に変換できるかどうか
            If DateTime.TryParse(lbl0105.Text, dt) Then
                '変換出る場合、現在の日付と比較する
                If dt.Date < dtNow.Date Then
                    lbl0105.BackColor = ERROR_INIT_COLOR
                    MsgBox(getMsgStr("MSG00049", lbl0100.Text))
                    m_iScore(0) = PASS_SCORE_WAIT_CHECK
                    Return False
                End If
            Else
                lbl0105.BackColor = ERROR_INIT_COLOR
                MsgBox(getMsgStr("MSG00048", lbl0100.Text))
                m_iScore(0) = PASS_SCORE_WAIT_CHECK
                Return False
            End If

            ' 着工チェックフラグを立てる
            m_iScore(0) = PASS_SCORE_CHECKED
            CheckCollScore()
        End If
        Return True
    End Function

    '補充ボタン押下
    Protected Sub btnTapeAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        '外部EXEを呼び出す
        Dim strRetStatus As String = Execute_Command(lblProcessCD.Text, EXEC_PG_TAG_TAPE, txtDiffLot.Text, g_EQUIP_NO, "", UserNo)
        '戻り値による処理は未定のため、現在は未実装
        If strRetStatus = "0" Then
            ' bSite連携
            bSiteCheckTape()
        Else
            MsgBox(getMsgStr("MSG10009", strRetStatus))
        End If
    End Sub

    '計上完成正常時の画面初期化
    Protected Overrides Sub initializForm()
        MyBase.initializForm()
        InputDataClear()
    End Sub

    'ウェハケースNoタブキー対応
    Private Sub txtData_PreviewKeyDown(ByVal sender As Object, ByVal e As PreviewKeyDownEventArgs) Handles txt0203.PreviewKeyDown
        'タブキーが押下された場合は、改行コードと見なし処理を行う
        If e.KeyCode = Keys.Tab Then
            e.IsInputKey = True
            txtData_KeyPress(sender, New KeyPressEventArgs(vbCr))
        End If
    End Sub

    '>>2018/1/31 佐川 キャリア交換対応
    'IcTag保存内容設定
    Protected Overrides Sub icTagDataSet()
        '製造完成、計上完成時は画面入力値の値を設定する。
        If execMode.Equals(COMPLETE) Or execMode.Equals(TOTAL) Then
            IcTag.container1 = txt0203.Text
            IcTag.container2 = String.Empty
            IcTag.container3 = String.Empty
            IcTag.container4 = String.Empty
            IcTag.container5 = String.Empty
        Else
            '初期値をそのまま保存するため、変更しない。
        End If
    End Sub
    '<<2018/1/31 佐川 キャリア交換対応

    ' >> 20180307 大賀 作業者入力確定時に次の入力にフォーカスを移動する
    ''' <summary>
    ''' 作業者入力後のフォーカスを各画面で設定する
    ''' 各画面でオーバーライドされない場合はTabIndex順に移動する
    ''' </summary>
    ''' <param name="inputType">作業者入力タイプ</param>
    ''' <param name="nowControl">対象コントロール</param>
    Protected Overrides Sub setNextFocus(ByVal inputType As OPERATER_INPUT_TYPE, ByVal nowControl As Control)
        If m_ProcessStatus <> ProcessStatus.Ready Then  ' ロット未入力の場合は処理しない
            If IcTag.Status = TagProcessStatus.Ready Then   ' 未着工

            ElseIf IcTag.Status = TagProcessStatus.Processing Then  ' 着工中
                If inputType = OPERATER_INPUT_TYPE.END_OPE Then
                    tabBase.SelectedTab = TabPageSp ' タブの移動
                    If String.IsNullOrEmpty(txt0203.Text) Then  ' 未入力の場合に入力可能にする
                        btnWafer.PerformClick()  ' バーコード入力ボタンを押す
                        Exit Sub
                    End If
                End If
            ElseIf IcTag.Status = TagProcessStatus.ManufComplete Then ' 製造完成

            End If
        End If
        ' 各画面個別のフォーカスに移動しない場合は次のTabIndexに移動
        SelectNextControl(nowControl, True, True, True, True)
    End Sub
    ' << 20180307 大賀 作業者入力確定時に次の入力にフォーカスを移動する
    '------------2021 PQC对应--------------
    Overrides Function chkMatChanged() As Boolean
        Dim pqc As New clsPQCCheck
        Dim katamei As String = ""
        Dim matlot As String = ""
        Dim rtn As Boolean = False
        pqc.selectPQC(lblEquipID.Text, katamei, matlot)

        If katamei = "" And txt0103.Text <> "" And txt0104.Text <> "" Then
            pqc.insertPQC(lblEquipID.Text, txt0103.Text, txt0104.Text)
            rtn = False
        End If
        If katamei <> "" Then
            If katamei = txt0103.Text And txt0104.Text = matlot Then
                rtn = False
            Else
                If txt0103.Text <> "" And txt0104.Text <> "" Then
                    pqc.updatePQC(lblEquipID.Text, txt0103.Text, txt0104.Text)
                    setChangeForPQC(EXEC_PG_TAG_TAPE)
                End If

                rtn = True
            End If
        End If
        Return rtn
    End Function
    '------------2021 PQC对应--------------

    '----------2021 DC、TC、LTF自动着工对应0619
    Public Overrides Sub updateRackInfo()

        Dim rackNo As New ArrayList
        Dim dbLot As New clsDbLotDefect
        If CUSTOMIZES_DC_TC_LTF_AUTO = True Then
            If txt0203.Text <> "" Then
                rackNo.Add(txt0203.Text)
            End If
            dbLot.DelInsRackInfo(IcTag.szDifLotNo, rackNo)
        End If
    End Sub

    '------------------------------------------
End Class
